草庐IT

python shuffle算法性能

全部标签

c# - 在 Entity Framework 4.1 版本中使用 Code-First 时性能极慢

我们公司正在开发一个新的应用程序,它的核心是一个比较大的业务数据对象。我们决定先用代码尝试EntityFramework,以从应用程序中抽象出数据库,但事情出了差错。业务对象由大约60个类组成,总共大约600个属性;然而,它是一个树结构,不存在交叉/回溯指针。我们的测试是向数据库添加一个未初始化的类实例。在我们的数据结构上使用DbContext.Add在我的开发机器上花费了8分钟。这是这种大小的物体的预期性能吗?是否有导致EntityFramework性能不佳的常见问题列表?我觉得我需要一些帮助。一些更多的数据点:业务对象根下的第一层有27个元素。存在3个元素(其余元素已注释掉),添加

c# - float 的乘法性能不一致

在.NET中测试float的性能时,我偶然发现了一个奇怪的情况:对于某些值,乘法似乎比正常情况慢得多。这是测试用例:usingSystem;usingSystem.Diagnostics;namespaceNumericPerfTestCSharp{classProgram{staticvoidMain(){Benchmark(()=>float32Multiply(0.1f),"\nfloat32Multiply(0.1f)");Benchmark(()=>float32Multiply(0.9f),"\nfloat32Multiply(0.9f)");Benchmark(()=>f

c# - "nested if"与使用 F# 的 "if and"性能

以下代码导致slow1=1323ms、slow2=1311ms和fast=897ms。这怎么可能?此处:Nestedornotnestedif-blocks?他们提到Anymoderncompiler,andbythatImeananythingbuiltinthepast20years,willcompilethesetothesamecode.lets=System.Diagnostics.Stopwatch()letmutablea=1s.Start()foriin0..1000000000doifi 最佳答案 我已经从ild

C# 巨大的性能下降分配浮点值

我正在尝试优化我的代码并在其上运行VS性能监视器。这说明简单的float赋值占用了大块的算力??我不明白这怎么可能。这是TagData的代码:publicclassTagData{publicinttf;publicfloattf_idf;}所以我真正做的是:floattag_tfidf=td.tf_idf;我很困惑。 最佳答案 我再贴一个理论:可能是第一次访问td成员的cachemiss。内存加载需要100-200个周期,在这种情况下似乎占该方法总持续时间的大约1/3。验证该理论的要点:您的数据集很大吗?它打赌是。您是否以随机内存

c# - 在不规则多边形中寻找点的算法

假设我有一个如下所示的多边形:我正在寻找一种C#算法,通过它我可以在任何多边形内找到一个点(可以是中间点,也可以是随机点)。为了找到质心,我使用了以下算法:privatePoint3dGetPolyLineCentroid(DBObjectpObject,doublepImageWidth,doublepImageHeight){Point2d[]pointArray=GetPointArrayOfRoomPolygon(pObject);doublecentroidX=0.0;doublecentroidY=0.0;doublesignedArea=0.0;doublex0=0.0;

c# - 现有元素的 HashSet 性能添加与包含

由于某些原因,当元素已存在于哈希集。证明:Stopwatchwatch=newStopwatch();intsize=10000;intiterations=10000;vars=newHashSet();for(inti=0;i{for(inti=0;i();for(inti=0;i{for(inti=0;i为什么Contains对于已经存在的元素比Add更快?注意:我正在使用来自另一个SO问题的Stopwatch扩展。publicstaticlongTime(thisStopwatchsw,Actionaction,intiterations){sw.Reset();sw.Star

c# - .NET 包含的哪些哈希算法适用于密码哈希?

passwordleakofLinkedIn证明了安全地散列密码的重要性。然而,即使使用“普通”哈希算法(例如MD5和SHA系列)对密码进行哈希处理也不安全,因为它们针对速度进行了优化,允许黑客每秒计算23亿个哈希值(蛮力)。有些散列算法使用起来更安全,因为它们的计算量更大,例如PBKDF2,Bcrypt、PBMAC和scrypt.然而,这些哈希算法似乎并未包含在.NET框架中。那么,.NET框架中包含哪些性能密集型哈希算法?答案:PBKDF2包含在框架中,并且thissiteshowshowtouseitproperly. 最佳答案

c# - 如何在不删除旧计数器的情况下向现有性能计数器类别添加新计数器?

我有一个自定义计数器类别,我需要向其添加一个新计数器,而不删除或重置任何现有计数器。我怎样才能做到这一点?我尝试使用CounterExists(),但即使在我创建了计数器之后,我如何才能将它关联到CounterCreationDataCollection项并将它关联到我现有的计数器类别? 最佳答案 我发现最好的方法是保留现有的原始值,然后在删除并重新创建类别后重新应用它们,尤其是因为关于此主题的信息似乎不多。//////WhendeletingtheCategory,needtopreservetheexistingcounterv

c# - 人气算法

在SO18上,Joel提到了一种算法,该算法会根据项目的年龄和受欢迎程度对项目进行排名,并且该算法基于引力。有人可以发布这个吗?C#会很不错,但实际上任何语言(好吧,我不会LISP)都可以。 最佳答案 我的理解是从另外一个JeffAtwood上大致是这样的发布t=(timeofentrypost)-(Dec8,2005)x=upvotes-downvotesy={1ifx>0,0ifx=0,-1ifx 关于c#-人气算法,我们在StackOverflow上找到一个类似的问题:

c# - C# 中的 String.Join 性能问题

我一直在研究向我提出的一个问题:如何编写一个将字符串作为输入并返回字符之间有空格的字符串的函数。该函数将被编写为在每秒调用数千次时优化性能。我知道.net有一个名为String.Join的函数,我可以将空格字符作为分隔符与原始字符串一起传递给该函数。除非使用String.Join,否则我可以使用StringBuilder类在每个字符后附加空格。完成此任务的另一种方法是声明一个包含2*n-1个字符的字符数组(您必须为空格添加n-1个字符)。可以在一个循环中填充字符数组,然后传递给String构造函数。我编写了一些.net代码,这些代码使用参数"Hello,World"运行这些算法中的每一